package com.noteam.chinamapview;

import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Matrix;
import android.graphics.Paint;
import android.graphics.Path;
import android.graphics.PointF;
import android.graphics.RectF;
import android.graphics.Region;
import android.util.AttributeSet;
import android.util.Log;
import android.view.GestureDetector;
import android.view.MotionEvent;
import android.view.View;

/**
 * 说明：中国地图
 * Created by 李明杰 on 2017/3/24.
 */
public class ChinaMapView extends View {
    private static final int DEFAULT_COLOR = Color.rgb(0xff, 0xff, 0xff);
    private static final int DEFAULT_SELECTD_COLOR = Color.rgb(0x00, 0xff, 0xff);
    private static final String TAG = "ChinaMapView";
    private int commonTextSixe = 25;
    private int textColor = 0xff108EE9;
    private PointF[] mPointFs = new PointF[4];
    private float height = 0;
    private float width = 0;
    private int padding = 8;
    private float svgPathScale = 2.5f;
    private Path[] xPaths = new Path[34];
    private Paint[] xPaints = new Paint[34];
    private Paint xPaintsBorder;
    private Paint touchPaint;
    private int selected = -1;
    private Matrix xMatrix = new Matrix();
    private float translateX, translateY;
    private int viewHeight, viewWidth;
    private float minScale = 1;
    private float maxScale = 6;
    private float scale;
    private float defaultScale = 1;
    private int selectdColor = -1;
    private int mapColor = -1;
    private long startOnTouchTime = 0;
    GestureDetector gestureDetector;
    
    private static String[] provinceNames = new String[]{
            "北京",
            "天津",
            "上海",
            "重庆",
            "河北",
            "山西",
            "辽宁",
            "黑龙江",
            "吉林",
            "江苏",
            "浙江",
            "安徽",
            "福建",
            "江西",
            "山东",
            "河南",
            "湖北",
            "湖南",
            "广东",
            "海南",
            "四川",
            "贵州",
            "云南",
            "陕西",
            "甘肃",
            "青海",
            "内蒙古自治区",
            "广西",
            "西藏自治区",
            "宁夏",
            "新疆维吾尔族自治区",
            "澳门",
//            "香港",
//            "台湾"
            "",
            ""
    };
    private static String[] svgPaths = new String[]{
            /**0  北京  */"M421.139,189.75L420.782,186.894L419.95,184.989L425.045,182.863L425.426,181.18L424.23699999999997,176.413H422.56899999999996L415.90299999999996,172.964L412.21299999999997,176.654C412.21299999999997,176.654,411.08799999999997,183.239,411.381,181.534C411.66999999999996,179.82999999999998,407.688,185.822,407.688,185.822L407.094,190.108L407.926,192.371L412.807,191.537L416.5,192.608L418.284,190.941L421.139,189.75Z",
            /**1  天津  */"M430.413,200.491C430.413,200.491,428.581,202.163,427.094,201.775C425.604,201.387,421.615,200.347,421.615,200.347L421.378,198.918L421.14,189.749L424.83,188.082L424.234,186.416L425.044,182.859L425.429,181.17600000000002L427.33,182.126L428.28299999999996,185.22400000000002L427.92699999999996,187.246L431.974,190.104L432.568,192.36700000000002L430.18899999999996,194.03500000000003L429.35499999999996,197.84400000000002L430.413,200.491Z",
            /**2  上海  */"M484.32,292.485L480.322,289.153C480.322,289.153,481.189,288.778,482.22,286.90200000000004C483.25100000000003,285.02700000000004,483.646,282.61600000000004,483.646,282.61600000000004L487.933,284.40400000000005L489.96,287.25800000000004L488.527,289.28200000000004L484.32,292.485Z",
            /**3  重庆  */"M318.986,317.871L324.566,315.779L329.13,317.871L330.144,312.06L335.49,308.34L336.841,300.669L340.773,299.60999999999996V292.13999999999993L344.46200000000005,290.7079999999999L352.55800000000005,293.56499999999994L354.22400000000005,295.82499999999993L358.27500000000003,294.9959999999999L360.77500000000003,295.2339999999999L363.39400000000006,298.6859999999999L364.46400000000006,305.2339999999999L363.63200000000006,307.4959999999999L361.96600000000007,306.90199999999993C361.96600000000007,306.90199999999993,358.89400000000006,310.4029999999999,357.08200000000005,310.71399999999994C355.273,311.0249999999999,348.74600000000004,312.1429999999999,348.74600000000004,312.1429999999999L346.48600000000005,314.4059999999999L348.26900000000006,316.6679999999999L348.50900000000007,321.5509999999999L350.7710000000001,322.14799999999985L356.48600000000005,329.28999999999985L356.8430000000001,338.69699999999983L353.62500000000006,341.1089999999998L353.0330000000001,341.5539999999998L349.69900000000007,338.1029999999998L346.4840000000001,333.81299999999976L346.2440000000001,331.19399999999973L343.9840000000001,330.71799999999973L341.3630000000001,331.55199999999974L337.07600000000014,329.52699999999976L335.05400000000014,334.40999999999974L331.36300000000017,334.6489999999997L328.74400000000014,338.6979999999997L327.07800000000015,337.8639999999997L324.7980000000002,330.8869999999997L318.29100000000017,326.8169999999997L318.986,317.871Z",
            /**4  河北  */"M413.04,235.229L413.39700000000005,233.80300000000003L411.61400000000003,230.35000000000002L418.516,217.85000000000002C418.516,217.85000000000002,427.24100000000004,209.95000000000002,424.829,212.13200000000003C422.418,214.31700000000004,429.35200000000003,210.94400000000005,429.35200000000003,210.94400000000005L433.62,205.52100000000004L431.973,204.39600000000004L430.413,200.48900000000003L427.094,201.77500000000003L421.615,200.34700000000004L421.378,198.91900000000004L421.14,189.74900000000005L424.83,188.08200000000005L424.411,186.51900000000006L424.234,186.41500000000005L425.044,182.85800000000006L419.95,184.98600000000005L420.782,186.89100000000005L420.96,188.31500000000005L421.14,189.74800000000005L418.28299999999996,190.93800000000005L416.49799999999993,192.60500000000005L412.8059999999999,191.53400000000005L407.92499999999995,192.36800000000005L407.09299999999996,190.10400000000004L407.68699999999995,185.81700000000004L411.37999999999994,181.53100000000003L412.21099999999996,176.65100000000004L415.90199999999993,172.96000000000004L422.5679999999999,176.41400000000004H424.23599999999993L425.42499999999995,181.17600000000004L427.3299999999999,182.12600000000003L428.2829999999999,185.22600000000003L427.9269999999999,187.25000000000003L431.97399999999993,190.10400000000004L432.5679999999999,192.36800000000005L435.90599999999995,193.79600000000005L444.23799999999994,189.27300000000005V186.65200000000004L449.1209999999999,179.50900000000004L445.67099999999994,174.62800000000004L443.04999999999995,174.39000000000004L438.287,171.17200000000005L439.955,166.05400000000006L432.568,165.45900000000006L429.35499999999996,160.69400000000007L429.712,158.07500000000007L423.402,151.16900000000007L419.351,153.19500000000008L415.9,156.64700000000008L417.09099999999995,159.26700000000008L416.25699999999995,160.93400000000008L411.37499999999994,161.17100000000008L409.11099999999993,163.19300000000007L407.08899999999994,162.35800000000006L405.0679999999999,164.38400000000007L400.54099999999994,167.83700000000007L398.51699999999994,166.40700000000007V161.76300000000006L396.85099999999994,160.93100000000007L394.2319999999999,162.12000000000006L391.1359999999999,168.66700000000006L389.9469999999999,174.97800000000007L393.6359999999999,181.16800000000006L396.8509999999999,184.02600000000007V189.26600000000008L398.7549999999999,193.55200000000008L397.9209999999999,198.3160000000001L393.03699999999986,201.52900000000008L390.7769999999999,208.9110000000001L394.82599999999985,213.5560000000001L397.6829999999999,219.2730000000001L395.89799999999985,222.1300000000001L395.4209999999999,226.0580000000001L393.6339999999999,228.6770000000001L392.7999999999999,231.53600000000012L395.4209999999999,234.9820000000001L406.8509999999999,236.41300000000012L411.3749999999999,234.62600000000012L413.04,235.229Z",
            /**5  山西  */"M363.393,259.519L371.60999999999996,257.254L381.967,250.11200000000002L389.34799999999996,248.681L394.82499999999993,244.394L395.4239999999999,234.989L392.80099999999993,231.54L393.63699999999994,228.684L395.4239999999999,226.065L395.9009999999999,222.136L397.6859999999999,219.27599999999998L394.82699999999994,213.563L390.7799999999999,208.91799999999998L393.0419999999999,201.53499999999997L397.92799999999994,198.32299999999998L398.7579999999999,193.558L396.8539999999999,189.272V184.03L393.63899999999995,181.176L386.2579999999999,184.98499999999999L385.06699999999995,183.796L381.13699999999994,186.65099999999998L377.9239999999999,186.41599999999997L371.6119999999999,195.46399999999997H369.7059999999999L366.2539999999999,198.32199999999997L366.49099999999993,202.36799999999997L364.8209999999999,205.81999999999996L364.2269999999999,210.34499999999997L361.1309999999999,215.22899999999998L364.4649999999999,222.134L363.3949999999999,226.063L360.7759999999999,230.349C360.7759999999999,230.349,364.9219999999999,249.345,364.4649999999999,247.25199999999998S361.9669999999999,256.06199999999995,361.9669999999999,256.06199999999995L363.393,259.519Z",
            /**6  辽宁  */"M491.15,173.2L497.933,163.19799999999998L502.21999999999997,158.31699999999998L501.62499999999994,153.55399999999997L497.10099999999994,148.31499999999997L496.50699999999995,144.02899999999997L488.29099999999994,132.95399999999998L487.93299999999994,134.028L486.26699999999994,135.814L482.81399999999996,131.76399999999998L477.931,130.33499999999998L477.695,131.76399999999998V134.028L475.673,136.04999999999998L471.626,140.1H467.1L465.434,142.956H463.64500000000004L460.55100000000004,146.052H458.76400000000007L455.0730000000001,149.743L452.8110000000001,150.339L447.93000000000006,157.839L444.83400000000006,153.195L441.3810000000001,150.933L439.7150000000001,152.6L441.6180000000001,162.602L439.9520000000001,166.055L438.2840000000001,171.175L443.0470000000001,174.39000000000001L445.66800000000006,174.62800000000001L449.11800000000005,179.50900000000001L451.61800000000005,178.08C451.61800000000005,178.08,454.4750000000001,175.199,455.66800000000006,173.198C456.86000000000007,171.196,459.71700000000004,166.41,459.71700000000004,166.41L466.504,164.981L470.791,169.267L467.692,176.054L463.64300000000003,182.365L467.331,184.985L467.098,188.08300000000003L464.241,190.93800000000002L464.83799999999997,192.12800000000001L469.71899999999994,189.50900000000001L476.8619999999999,180.102L487.6979999999999,174.03L491.15,173.2Z",
            /**7  黑龙江 */"M464.838,96.639L471.625,95.449L474.479,100.69L478.764,103.785L481.62,102.597H484.00600000000003L488.29100000000005,100.09599999999999L491.38500000000005,103.18999999999998L493.40900000000005,103.54699999999998L498.7660000000001,101.52399999999999L502.57900000000006,103.54699999999998L504.24500000000006,107.83499999999998H507.1020000000001L508.5320000000001,109.73899999999998L512.2210000000001,113.78799999999998L513.6470000000002,112.95499999999998L513.0530000000001,107.83499999999998L515.0790000000001,106.40299999999998L517.9330000000001,112.11899999999997L520.5540000000001,113.19299999999997L523.412,116.40499999999997L525.433,116.04799999999997L526.269,114.62099999999997L530.792,109.50099999999996L532.8140000000001,110.92899999999996L534.244,108.90699999999995L535.6750000000001,111.52599999999995L539.9580000000001,112.95499999999996H542.8180000000001L544.8880000000001,113.04299999999995L543.6500000000001,110.92999999999995L543.0520000000001,104.02399999999994L537.9370000000001,96.04599999999995L540.7920000000001,93.18899999999995L543.4080000000001,88.30599999999995H553.0540000000001L554.839,86.64099999999995L554.2420000000001,82.95099999999995L556.267,79.25999999999995L555.671,77.23599999999995L556.503,73.78499999999995L556.267,56.04299999999995L559.1220000000001,50.327999999999946L555.908,46.635999999999946L556.503,44.37499999999994L555.076,42.35099999999994L551.386,43.779999999999944L547.097,48.663999999999945L542.814,50.68699999999995L538.525,56.63799999999995L527.927,60.32999999999995L523.048,56.63799999999995L523.642,54.37599999999995L521.142,50.68699999999995L519.951,46.87599999999995L515.904,46.63699999999995L508.759,42.94699999999995L505.90000000000003,44.01799999999995L502.57000000000005,42.35099999999995L497.68300000000005,43.18499999999995L493.40000000000003,41.75599999999995L490.77900000000005,38.06599999999995L488.28100000000006,35.20899999999995L487.33000000000004,32.351999999999954L483.99600000000004,28.899999999999956L481.97,25.800999999999956L477.326,19.490999999999957L475.898,15.800999999999958L470.779,9.252999999999957L469.347,5.798999999999957L462.798,2.5829999999999567L458.511,4.011999999999957L454.822,3.1789999999999567L446.486,1.5109999999999568L435.416,5.442999999999957L433.392,7.228999999999957L435.654,10.324999999999957L432.798,17.823999999999955L433.632,18.658999999999956L438.51300000000003,21.754999999999956L441.134,17.46899999999996L445.658,20.32499999999996L445.423,22.34699999999996L447.087,27.46599999999996L449.941,30.68399999999996L455.65799999999996,31.516999999999957L457.32599999999996,29.729999999999958L460.777,29.252999999999957L467.324,23.77699999999996L475.90000000000003,30.086999999999957L473.04200000000003,41.75599999999996L473.636,50.088999999999956V55.207999999999956L471.37600000000003,56.39899999999996L471.13800000000003,69.73399999999995L470.54100000000005,69.25799999999995L468.28100000000006,66.39999999999995H467.08900000000006L466.494,67.47299999999994C466.494,67.47299999999994,457.697,80.51699999999994,459.348,78.06899999999995C461,75.62099999999995,455.897,82.59199999999994,455.897,82.59199999999994L456.254,84.01999999999994L463.399,88.90599999999993L467.325,87.83499999999994L467.924,88.90599999999993L467.09,90.09499999999994L463.40099999999995,91.76199999999994L463.042,94.97599999999994L464.838,96.639Z",
            /**8  吉林  */"M544.896,113.042L542.8259999999999,112.95400000000001H539.968L535.683,111.52300000000001L534.253,108.90400000000001L532.822,110.92800000000001L530.8,109.50000000000001L526.2769999999999,114.62000000000002L525.443,116.04700000000003L523.4209999999999,116.40400000000002L520.5619999999999,113.19000000000003L517.9409999999999,112.11800000000002L515.0869999999999,106.40300000000002L513.0599999999998,107.83400000000002L513.6539999999999,112.95400000000002L512.2279999999998,113.78700000000002L508.5389999999998,109.73700000000002L507.1069999999998,107.83400000000002H504.2529999999998L502.5869999999998,103.54600000000002L498.77399999999983,101.52300000000002L493.41999999999985,103.54600000000002L491.39499999999987,103.18900000000002L488.29699999999985,100.09500000000003L484.01199999999983,102.59500000000003H481.62899999999985L478.7719999999998,103.78600000000003L474.4869999999998,100.69000000000003L471.6329999999998,95.45000000000003L464.84599999999983,96.63900000000004L462.22499999999985,99.73800000000004L461.98699999999985,103.18800000000005L454.48499999999984,101.16500000000005L453.41099999999983,103.54600000000005L454.01199999999983,105.21300000000005L457.9399999999998,108.07200000000005V112.11800000000005L458.5339999999998,116.04700000000005L460.7989999999998,119.50300000000006L461.1549999999998,122.59800000000006L462.8209999999998,123.78900000000006L468.5379999999998,118.31000000000006L474.49099999999976,125.81200000000005V130.10000000000005L477.7039999999998,131.76700000000005L477.9419999999998,130.33600000000004L482.82699999999977,131.76700000000005L486.2779999999998,135.81300000000005L487.9439999999998,134.02900000000005L488.3009999999998,132.95500000000004L496.5179999999998,144.03000000000003L497.1119999999998,148.31600000000003L501.6389999999998,153.55500000000004L502.23099999999977,158.31600000000003L506.28199999999975,155.81700000000004L509.9709999999998,145.21900000000002L511.6409999999998,144.62400000000002L515.6879999999998,146.88700000000003L522.2369999999997,146.05300000000003L524.4969999999997,144.02900000000002L521.4049999999997,139.26600000000002L522.2369999999997,138.07500000000002C522.2369999999997,138.07500000000002,530.0769999999998,135.46400000000003,528.3089999999997,136.05300000000003C526.5429999999998,136.64100000000002,530.8089999999997,131.17000000000002,530.8089999999997,131.17000000000002L534.0239999999998,129.74200000000002L534.2619999999998,124.97600000000001L535.0939999999998,121.76400000000001L536.8789999999998,121.168L538.5469999999998,122.95700000000001L540.2149999999998,124.38300000000001L544.5019999999998,118.668L545.6899999999998,114.38000000000001L544.896,113.042Z",
            /**9  江苏  */"M483.646,282.616L482.22,286.902L480.322,289.15299999999996L477.097,292.977L472.21799999999996,292.142L468.289,289.759L465.906,290.949L457.335,290.117L457.097,286.663L452.81,283.807L451.382,281.189L453.402,278.925V277.26V274.993L458.52299999999997,274.399L458.763,272.376L457.097,270.113L454.476,269.758L452.81,272.61199999999997L448.523,271.78099999999995L447.33500000000004,269.518L444.478,267.852L445.433,261.77799999999996L444.835,260.70599999999996L441.976,261.18499999999995L439.955,259.518L434.837,258.089L431.976,255.232L425.669,252.611L426.26099999999997,249.755L428.76099999999997,248.686L433.40599999999995,252.613H434.83899999999994L439.12299999999993,252.137L441.62299999999993,250.115L445.0759999999999,252.971L446.50299999999993,250.351L446.86099999999993,248.921L449.71799999999996,247.254L450.55199999999996,243.804L453.40599999999995,243.207L460.554,248.088C460.554,248.088,463.919,248.84199999999998,465.671,250.113C467.425,251.384,475.437,266.426,475.437,266.426L475.08,268.092L481.628,271.187L483.412,274.046L486.51099999999997,275.47499999999997L487.93899999999996,278.33L485.91599999999994,279.281L482.58199999999994,278.093H477.93699999999995L473.65,276.661L471.984,278.093L475.916,279.281L479.729,280.95L483.646,282.616Z",
            /**10 浙江  */"M483.793,336.063L477.338,338.339L473.64500000000004,334.649L471.14700000000005,337.864H467.09800000000007L465.4320000000001,334.40999999999997L463.40900000000005,329.292L459.71700000000004,328.69599999999997L455.67,321.195L453.051,317.505L454.954,315.687L455.67,315.002C455.67,315.002,461.911,306.16200000000003,459.956,308.932C458.002,311.701,459.71700000000004,304.05,459.71700000000004,304.05L461.14700000000005,302.144L464.48300000000006,301.55L465.4340000000001,300.12L464.24500000000006,297.857L465.91100000000006,295.475V290.951L468.2950000000001,289.762L472.22300000000007,292.144L477.1020000000001,292.979L480.3270000000001,289.155L484.3250000000001,292.48699999999997L482.5810000000001,293.811L480.56000000000006,296.907L477.3430000000001,297.859L476.26900000000006,298.692L479.3670000000001,300.358L485.08200000000005,297.859L494.48800000000006,301.78799999999995L495.44100000000003,309.76699999999994H491.632L491.392,312.14899999999994L493.416,315.48099999999994L491.632,317.50499999999994L493.654,320.71899999999994L490.558,324.40899999999993L489.128,322.62199999999996L484.484,334.40999999999997L483.793,336.063Z",
            /**11 安徽  */"M423.637,253.208L425.661,252.611L431.973,255.232C431.973,255.232,433.741,257.531,434.834,258.088C435.926,258.64500000000004,439.952,259.51800000000003,439.952,259.51800000000003L441.973,261.185L444.831,260.706L445.43,261.778L444.473,267.85200000000003L447.331,269.51800000000003L448.52000000000004,271.781L452.807,272.612L454.473,269.75800000000004L457.094,270.11400000000003L458.76,272.379L458.52,274.40000000000003L453.399,274.99600000000004V277.26000000000005V278.92500000000007L451.378,281.19000000000005L452.808,283.80800000000005L457.09499999999997,286.66400000000004L457.332,290.11800000000005L465.904,290.95000000000005V295.475L464.238,297.856L465.429,300.11899999999997L464.47799999999995,301.549L461.13999999999993,302.143L459.71199999999993,304.049L459.94699999999995,308.931L455.6619999999999,315.003L454.94699999999995,315.686L452.566,313.575H446.5L444.002,310.71999999999997L439.118,315.481L437.332,314.647L439.358,310.957L439.118,309.769L437.332,309.29L431.614,312.389L426.258,302.148L427.924,298.934L427.32899999999995,297.863L424.47099999999995,296.911L419.71099999999996,294.053L421.614,290.125L424.469,288.695L425.067,285.481L423.997,279.765L423.401,279.286L420.545,282.146C420.545,282.146,414.567,277.499,416.25800000000004,278.69300000000004C417.94800000000004,279.88500000000005,413.04100000000005,274.64400000000006,413.04100000000005,274.64400000000006L416.25800000000004,272.38300000000004L417.09200000000004,268.333L419.11300000000006,266.90200000000004L418.75900000000007,261.54300000000006L420.1890000000001,260.3550000000001L422.8080000000001,262.14200000000005L424.4720000000001,264.40200000000004L427.92500000000007,262.14200000000005L429.1170000000001,260.708L428.51900000000006,258.091L424.4700000000001,255.828L423.637,253.208Z",
            /**12 福建  */"M435.945,374.779C435.945,374.779,438.82599999999996,362.271,437.687,364.414C436.55,366.558,439.35900000000004,361.794,439.35900000000004,361.794L440.189,358.94L442.21200000000005,354.654L441.14000000000004,352.986L441.38000000000005,349.295L446.2610000000001,343.82L445.90400000000005,340.129L449.119,334.651L452.21400000000006,335.485L458.52500000000003,330.961L459.718,328.701L463.408,329.29400000000004L465.433,334.41200000000003L467.099,337.86600000000004H471.146L473.644,334.65100000000007L477.337,338.34100000000007L483.791,336.06500000000005L479.722,345.84100000000007L477.337,344.64900000000006L475.671,345.48400000000004L475.433,346.43800000000005L477.695,348.939L477.097,357.868L477.695,360.727L477.097,361.561L474.47999999999996,360.962L472.81199999999995,362.62899999999996L474.00299999999993,365.013L470.78899999999993,368.108L471.38399999999996,369.297L468.287,370.96200000000005L468.765,373.22600000000006L467.693,374.41700000000003H463.40799999999996L461.14399999999995,376.442L460.7869999999999,377.274L462.80999999999995,378.702L460.54999999999995,382.154L457.691,385.84499999999997L456.50199999999995,385.489L453.40199999999993,388.705L449.9549999999999,381.203L446.8569999999999,377.274L444.8339999999999,377.514L443.4039999999999,376.442L435.945,374.779Z",
            /**13 江西  */"M408.279,325.242L411.615,331.791L411.97,335.243L410.185,338.697L407.683,340.721L407.089,346.909L407.921,347.864L409.351,347.268L410.185,347.864V351.791L411.97,356.438L413.99600000000004,357.269L414.23,364.058L413.03700000000003,368.7L414.23,370.721L416.49600000000004,372.986L421.97,371.557L423.04100000000005,373.579L421.37600000000003,375.842L418.51700000000005,380.12899999999996V381.19899999999996L420.18700000000007,382.39099999999996L431.6170000000001,377.866L435.6640000000001,380.12899999999996L436.8550000000001,378.93899999999996L435.6640000000001,376.43999999999994L435.9450000000001,374.77699999999993L437.6870000000001,364.4119999999999L439.35700000000014,361.7919999999999L440.18900000000014,358.93799999999993L442.2140000000001,354.65199999999993L441.1420000000001,352.9839999999999L441.3800000000001,349.29299999999995L446.2610000000001,343.8179999999999L445.90600000000006,340.12699999999995L449.1190000000001,334.64899999999994L452.2140000000001,335.48299999999995L458.5250000000001,330.95899999999995L459.7180000000001,328.69599999999997L455.6690000000001,321.195L453.05000000000007,317.505L454.9510000000001,315.687L452.5700000000001,313.576H446.5L444,310.721L439.116,315.483L437.332,314.648L439.356,310.958L439.116,309.77000000000004L437.332,309.29100000000005L431.616,312.39000000000004L427.092,313.819L423.40299999999996,313.581C423.40299999999996,313.581,413.69399999999996,323.25,415.424,320.962C417.155,318.675,411.137,322.395,411.137,322.395L408.279,325.242Z",
            /**14 山东  */"M425.661,252.611L426.258,249.755L428.758,248.686L433.40299999999996,252.613H434.83599999999996L439.11999999999995,252.137L441.61999999999995,250.115L445.0729999999999,252.971L446.5019999999999,250.351L446.8579999999999,248.921L449.7149999999999,247.254L450.5489999999999,243.804L453.4029999999999,243.209L461.3829999999999,229.755L459.95399999999995,227.49099999999999L461.3829999999999,226.064L463.0489999999999,226.659L465.66799999999995,225.23L467.09999999999997,222.136L473.645,216.063L478.76599999999996,214.397L481.14699999999993,212.131L480.55499999999995,207.251L477.09799999999996,206.89600000000002L469.35999999999996,207.848L464.00399999999996,205.228L460.78799999999995,205.824L452.811,216.06300000000002L450.549,217.49200000000002L445.43199999999996,215.229L445.073,212.61L444.00399999999996,208.08700000000002L441.145,206.418L436.502,207.491L433.62,205.52L429.354,210.943L424.83099999999996,212.131C424.83099999999996,212.131,416.31699999999995,219.929,418.518,217.849C420.719,215.768,411.616,230.349,411.616,230.349L413.399,233.79899999999998L413.042,235.23V236.896L413.99899999999997,238.325L416.26,236.65599999999998L419.95,235.82199999999997L409.948,246.896V249.517L411.971,250.113L416.495,254.043L423.641,253.208L425.661,252.611Z",
            /**15 河南  */"M371.131,276.068L380.53599999999994,284.404L388.27799999999996,286.069L395.42199999999997,284.997L397.68399999999997,286.069L400.18399999999997,284.639L401.967,286.426L402.801,289.282L406.256,291.18699999999995H410.78L414.231,294.044L417.329,292.616L419.711,294.044L421.61400000000003,290.115L424.46900000000005,288.685L425.06700000000006,285.469L423.99700000000007,279.754L423.40100000000007,279.27500000000003L420.5450000000001,282.13500000000005L416.2580000000001,278.6820000000001L413.0400000000001,274.6330000000001L416.2580000000001,272.3700000000001L417.0920000000001,268.3220000000001L419.1130000000001,266.89100000000013L418.7590000000001,261.53200000000015L420.18900000000014,260.34400000000016L422.80800000000016,262.13100000000014L424.47200000000015,264.39100000000013L427.92700000000013,262.13100000000014L429.11700000000013,260.6970000000001L428.5190000000001,258.0800000000001L424.47000000000014,255.8170000000001L423.63600000000014,253.1980000000001L416.49400000000014,254.0330000000001L411.97000000000014,250.1030000000001L409.9490000000001,249.5070000000001V246.88600000000008L419.9490000000001,235.81200000000007L416.2590000000001,236.64600000000007L413.9980000000001,238.31500000000008L413.0410000000001,236.88600000000008V235.22000000000008L411.3780000000001,234.6200000000001L406.8530000000001,236.4050000000001L395.4230000000001,234.9770000000001L394.82600000000014,244.38500000000008C394.82600000000014,244.38500000000008,388.22200000000015,249.5540000000001,389.34700000000015,248.67200000000008C390.47600000000017,247.7880000000001,381.9660000000001,250.10100000000008,381.9660000000001,250.10100000000008L371.60700000000014,257.2430000000001L363.39200000000017,259.5070000000001V260.9370000000001L371.13000000000017,272.6030000000001L371.131,276.068L371.131,276.068Z",
            /**16 湖北  */"M356.486,329.29L358.27299999999997,325.242L363.39199999999994,320.95500000000004L368.2729999999999,322.98100000000005L371.3689999999999,320.95500000000004L368.74799999999993,317.862L370.1769999999999,316.42900000000003L383.3959999999999,317.26500000000004L387.9209999999999,320.362L390.1849999999999,321.78700000000003L393.6359999999999,319.52700000000004L396.25499999999994,318.694L396.85099999999994,321.78700000000003H398.75499999999994L400.18499999999995,319.766L403.04099999999994,316.906L404.4719999999999,318.933V322.98199999999997L405.6619999999999,324.64899999999994L408.28099999999995,325.24299999999994L411.13599999999997,322.38899999999995L415.42299999999994,320.95599999999996L423.40199999999993,313.57499999999993L427.0929999999999,313.8109999999999L431.6149999999999,312.3829999999999L426.2569999999999,302.1429999999999L427.9249999999999,298.9289999999999L427.3319999999999,297.8579999999999L424.46999999999986,296.9059999999999L419.70899999999983,294.0479999999999L417.32799999999986,292.62099999999987L414.22999999999985,294.0479999999999L410.7789999999998,291.1939999999999H406.2549999999998L402.79999999999984,289.2869999999999L401.96999999999986,286.4309999999999L400.1829999999999,284.6449999999999L397.6829999999999,286.0729999999999L395.421,285C395.421,285,385.912,285.927,388.275,286.071C390.638,286.21700000000004,380.539,284.40500000000003,380.539,284.40500000000003L371.132,276.071L368.513,278.09400000000005L367.325,277.26300000000003H365.418H356.846L355.657,278.331L358.276,280.951L360.776,281.54400000000004L363.036,282.38100000000003L361.969,284.04900000000004L357.682,286.07000000000005L356.848,289.5210000000001L357.682,290.71200000000005L358.278,295.00000000000006L360.778,295.23800000000006L363.39700000000005,298.69000000000005L364.46700000000004,305.23800000000006L363.63500000000005,307.50000000000006L361.96900000000005,306.90600000000006L357.08600000000007,310.7180000000001L348.75000000000006,312.14700000000005L346.48900000000003,314.41L348.27200000000005,316.672L348.51200000000006,321.55400000000003L350.77400000000006,322.15200000000004L356.486,329.29Z",
            /**17 湖南  */"M408.279,325.242L405.65999999999997,324.648L404.472,322.98100000000005V318.93100000000004L403.042,316.90500000000003L400.18499999999995,319.76500000000004L398.75499999999994,321.78800000000007H396.85099999999994L396.25699999999995,318.69200000000006L393.63599999999997,319.5250000000001L390.18499999999995,321.78800000000007L387.92099999999994,320.36000000000007C387.92099999999994,320.36000000000007,385.25499999999994,317.83900000000006,383.39599999999996,317.2630000000001C381.53899999999993,316.68700000000007,370.179,316.4310000000001,370.179,316.4310000000001L368.74899999999997,317.86000000000007L371.36899999999997,320.9530000000001L368.27299999999997,322.9790000000001L363.39,320.9530000000001L358.27299999999997,325.24000000000007L356.486,329.2900000000001C356.486,329.2900000000001,356.296,335.76900000000006,356.843,338.69500000000005C357.394,341.62100000000004,359.343,348.69700000000006,359.343,348.69700000000006L353.62600000000003,355.00700000000006L354.22200000000004,355.8400000000001L359.343,354.4120000000001L361.12800000000004,356.67500000000007L359.69900000000007,363.8190000000001L362.5560000000001,368.94000000000005L365.4120000000001,369.77200000000005L368.2690000000001,365.84100000000007L369.6990000000001,368.94000000000005L370.53300000000013,368.70200000000006L375.05600000000015,364.41400000000004L376.2470000000001,364.65400000000005L378.26800000000014,363.5810000000001L381.9610000000001,364.65400000000005V368.70200000000006L384.8170000000001,369.2970000000001L383.9850000000001,373.22600000000006L381.36200000000014,377.5160000000001L380.17400000000015,381.20400000000006H381.36200000000014L384.46500000000015,378.3500000000001L387.08200000000016,384.0630000000001L389.1030000000002,382.6330000000001H391.3670000000002L393.63000000000017,380.9670000000001V377.5170000000001L394.81800000000015,376.4450000000001L397.67700000000013,376.6800000000001L402.55600000000015,378.94400000000013L403.39000000000016,377.27700000000016L402.20200000000017,375.25400000000013L402.55600000000015,373.82500000000016L405.65400000000017,371.20600000000013L411.1320000000002,372.6340000000001L414.2280000000002,370.7280000000001L413.0350000000002,368.7070000000001L414.2280000000002,364.0650000000001L413.9940000000002,357.2760000000001L411.9680000000002,356.4450000000001L410.18300000000016,351.7980000000001V347.8710000000001L409.34900000000016,347.2750000000001L407.91900000000015,347.8710000000001L407.08700000000016,346.9160000000001L407.68100000000015,340.7280000000001L410.18300000000016,338.7040000000001L411.9680000000002,335.2500000000001L411.61300000000017,331.7980000000001L408.279,325.242Z",
            /**18 广东  */"M391.37,382.632L393.635,380.966V377.516L394.823,376.444L397.68199999999996,376.67900000000003L402.561,378.94300000000004L403.395,377.27600000000007L402.207,375.2510000000001L402.561,373.82400000000007L405.659,371.20500000000004L411.137,372.63200000000006L414.233,370.7270000000001L416.497,372.9920000000001L421.975,371.5630000000001L423.045,373.5840000000001L421.379,375.8480000000001L418.52000000000004,380.13600000000014V381.20500000000015L420.19000000000005,382.39700000000016L431.62000000000006,377.8720000000002L435.66800000000006,380.1360000000002L436.85800000000006,378.9450000000002L435.66800000000006,376.4460000000002L435.94800000000004,374.7830000000002L443.40700000000004,376.4460000000002L444.838,377.5180000000002L446.86,377.2780000000002L449.954,381.20700000000016L453.40500000000003,388.7090000000002L451.14500000000004,390.37600000000015L449.122,394.06500000000017L447.336,394.6610000000002L445.672,398.11600000000016L439.956,400.97000000000014L437.69,399.78200000000015L436.264,402.16400000000016V402.9970000000002H434.47700000000003H431.379L428.522,405.0200000000002L426.501,403.8320000000002L424.001,405.49500000000023L417.68699999999995,408.11400000000026L412.566,404.06400000000025L412.212,407.28100000000023L414,412.16300000000024L409.354,414.06700000000023L406.856,417.51900000000023L401.969,418.7100000000002L399.352,419.7830000000002H394.23299999999995C394.23299999999995,419.7830000000002,393.3639999999999,422.3280000000002,390.78,423.2350000000002C388.19599999999997,424.1390000000002,381.61199999999997,426.4480000000002,381.61199999999997,426.4480000000002L377.09,429.5460000000002L374.825,431.8090000000002L379.11199999999997,438.7120000000002L376.256,441.2130000000002L372.80499999999995,440.9750000000002L368.75199999999995,433.59400000000016L369.70599999999996,428.35600000000017V425.8550000000002L372.55999999999995,421.2090000000002L376.25499999999994,420.37800000000016L375.8999999999999,417.8770000000002L379.70899999999995,416.09200000000016L380.18499999999995,411.80400000000014L386.85299999999995,406.6850000000002L386.49799999999993,399.7800000000002L391.61699999999996,393.2330000000002L391.37699999999995,390.7330000000002L393.04299999999995,388.3520000000002L391.37,382.632Z",
            /**19 海南  */"M385.895,447.523L380.77599999999995,456.45300000000003V460.382L370.53799999999995,468.718L359.93999999999994,465.029L357.91499999999996,457.528L358.51199999999994,454.074C358.51199999999994,454.074,366.58599999999996,445.999,364.2269999999999,448.358C361.8699999999999,450.716,366.2519999999999,446.693,366.2519999999999,446.693L375.6549999999999,445.025L379.9439999999999,444.667L381.3699999999999,443.001L384.4729999999999,443.83299999999997L385.895,447.523Z",
            /**20 四川  */"M279.33,280.95L281.118,276.9L279.093,274.63899999999995L278.736,271.18499999999995L285.881,268.08899999999994H287.66799999999995L288.73699999999997,270.70799999999997L289.094,274.044L292.549,276.428L297.07099999999997,280.949L299.69199999999995,279.28000000000003L301.35599999999994,280.949L301.95599999999996,285.474L304.811,287.495L312.19399999999996,288.094L313.383,286.663L313.02599999999995,284.64L317.31299999999993,283.57L319.6939999999999,284.048L319.9319999999999,286.665L321.9559999999999,286.90200000000004L329.3379999999999,285.475L330.7679999999999,286.06800000000004L331.1219999999999,288.09400000000005L334.2209999999999,288.92800000000005L340.76999999999987,292.14200000000005V299.6120000000001L336.83799999999985,300.6710000000001L335.48699999999985,308.3420000000001L330.14099999999985,312.0620000000001L329.12699999999984,317.8730000000001L324.5629999999998,315.7810000000001L318.98299999999983,317.8730000000001L318.75199999999984,322.2890000000001L318.28799999999984,326.8190000000001L324.79499999999985,330.88900000000007L327.0749999999998,337.86600000000004L324.4519999999998,338.69900000000007L320.52399999999983,336.4360000000001L317.3109999999998,340.12700000000007V341.79300000000006L323.6219999999998,345.24500000000006L325.0489999999998,347.86500000000007L320.5259999999998,349.53100000000006L313.6219999999998,349.29300000000006L312.79099999999977,346.43800000000005L310.1699999999998,345.48400000000004L305.88499999999976,348.107L303.0259999999998,346.67800000000005L302.7879999999998,342.98400000000004L301.3579999999998,341.19800000000004V339.295L297.31099999999975,338.343L296.23899999999975,339.531L296.83799999999974,342.389L293.62299999999976,343.82L292.78699999999975,345.841L293.62299999999976,348.345L286.47699999999975,356.67900000000003L287.6679999999997,366.44300000000004L284.21499999999975,369.29800000000006L282.54899999999975,367.51400000000007L275.64299999999974,371.56300000000005L273.02199999999976,370.13200000000006L263.0209999999998,350.96200000000005L259.0899999999998,348.10800000000006L255.8739999999998,347.2730000000001L254.4459999999998,344.6500000000001L256.2329999999998,341.7960000000001L253.37599999999978,339.5320000000001L249.92099999999976,342.3900000000001L246.47099999999978,342.9850000000001L244.20699999999977,332.62600000000015L243.60999999999976,330.1270000000001C243.60999999999976,330.1270000000001,241.56999999999977,307.55900000000014,243.01599999999976,313.5770000000001C244.46199999999976,319.5940000000001,239.91699999999977,305.2410000000001,239.91699999999977,305.2410000000001L242.18399999999977,303.5760000000001L235.63399999999976,291.5490000000001L227.65699999999975,285.2380000000001L228.72599999999974,281.5460000000001L229.67899999999975,280.3580000000001L241.34799999999976,278.6920000000001L249.08599999999976,280.9540000000001L253.60899999999975,279.52300000000014L255.39399999999975,282.3820000000001L261.11099999999976,288.0970000000001L265.63499999999976,287.26400000000007V283.8110000000001L266.82599999999974,281.5450000000001L271.34799999999973,279.76200000000006L273.0149999999997,282.61800000000005L275.6359999999997,280.71500000000003L279.3249999999997,281.19300000000004V280.95200000000006H279.33Z",
            /**21 贵州  */"M313.622,349.296L311.956,354.057L309.1,355.00800000000004L302.78700000000003,354.057L301.357,355.486L297.90400000000005,354.416L294.81000000000006,358.702L296.23800000000006,360.132V362.988L297.66900000000004,365.489L303.97800000000007,363.58299999999997L305.8860000000001,365.24999999999994L303.0270000000001,377.27699999999993L306.8370000000001,380.96599999999995L305.6490000000001,387.87299999999993L309.3370000000001,388.11099999999993L313.3880000000001,384.41599999999994L315.0560000000001,385.4889999999999L322.7930000000001,388.7049999999999L324.2220000000001,387.87299999999993L324.4570000000001,385.2509999999999L325.8900000000001,383.82199999999995L336.8450000000001,376.67799999999994L338.7480000000001,378.9429999999999L345.4160000000001,380.96399999999994L349.10500000000013,376.08099999999996L350.77300000000014,377.27299999999997H353.39200000000017V375.84099999999995L356.84500000000014,374.65199999999993V373.5809999999999L358.27500000000015,372.1529999999999L359.10700000000014,372.38999999999993L362.5600000000001,368.93799999999993L359.7030000000001,363.81499999999994L361.13200000000006,356.67299999999994L359.34700000000004,354.40999999999997L354.22600000000006,355.83799999999997L353.63000000000005,355.00399999999996L359.34700000000004,348.69499999999994L356.84700000000004,338.69399999999996L353.03700000000003,341.549L349.70300000000003,338.099L346.48800000000006,333.80899999999997L346.24800000000005,331.18999999999994L343.98800000000006,330.71299999999997L341.3670000000001,331.54699999999997L337.0800000000001,329.52299999999997L335.0580000000001,334.40599999999995L331.36700000000013,334.6449999999999L328.7480000000001,338.6939999999999L327.0820000000001,337.8599999999999L324.4590000000001,338.6939999999999L320.5310000000001,336.4279999999999L317.3180000000001,340.1179999999999V341.7859999999999L323.6300000000001,345.23899999999986L325.0560000000001,347.85999999999984C325.0560000000001,347.85999999999984,318.9620000000001,350.10499999999985,320.5330000000001,349.5269999999998C322.1,348.955,313.622,349.296,313.622,349.296Z",
            /**22 云南  */"M313.622,349.296L312.786,346.438L310.168,345.484L305.885,348.106L303.026,346.674L302.788,342.986L301.358,341.19599999999997V339.29299999999995L297.309,338.34099999999995L296.23900000000003,339.52899999999994L296.838,342.3879999999999L293.62100000000004,343.8179999999999L292.78700000000003,345.83899999999994L293.62100000000004,348.33899999999994L286.475,356.67499999999995L287.666,366.441L284.213,369.29499999999996L282.547,367.51099999999997L275.64000000000004,371.55899999999997L273.02200000000005,370.128C273.02200000000005,370.128,261.487,348.022,263.02000000000004,350.95599999999996C264.55300000000005,353.89399999999995,259.08900000000006,348.102,259.08900000000006,348.102L255.87600000000006,347.268L254.44400000000007,344.64899999999994L256.23100000000005,341.78999999999996L253.37400000000005,339.527L249.91900000000004,342.38599999999997L246.46800000000005,342.984L244.20500000000004,332.621L243.60900000000004,330.12199999999996L240.15500000000003,334.40799999999996L238.72800000000004,335.239L239.08400000000003,341.78999999999996L238.25000000000003,343.22099999999995H236.46600000000004L235.03600000000003,341.78999999999996L233.36900000000003,343.816L235.03600000000003,351.197H237.06000000000003L238.72700000000003,352.387C238.72700000000003,352.387,239.19500000000002,354.783,239.32100000000003,356.908C239.44600000000003,359.033,238.48800000000003,372.627,238.48800000000003,372.627L227.65100000000004,382.39300000000003L227.05700000000004,386.08200000000005L225.03300000000004,387.869L224.79500000000004,389.77200000000005L226.46400000000006,394.415L225.03300000000004,397.869L225.86700000000005,398.34700000000004L231.34500000000006,396.91400000000004L239.08300000000006,396.43800000000005L238.24900000000005,399.53600000000006L239.68000000000006,402.3930000000001L240.15500000000006,406.68000000000006L241.11000000000007,408.10600000000005L245.63400000000007,408.34900000000005L247.65800000000007,409.77400000000006L245.39400000000006,412.63000000000005L245.03800000000007,416.083L243.37100000000007,420.13300000000004L244.43900000000008,421.56300000000005L247.2990000000001,421.80100000000004L252.1800000000001,423.58500000000004L251.5870000000001,425.252L254.7990000000001,430.13300000000004H259.3230000000001L265.0390000000001,426.92L266.8250000000001,427.872V429.778L267.6570000000001,432.634L269.0890000000001,434.063L272.1810000000001,433.586L273.3730000000001,434.42L274.4450000000001,433.228V428.70300000000003L272.5390000000001,420.37L273.9700000000001,417.87H278.7320000000001H279.9240000000001L282.5440000000001,414.657L289.3270000000001,416.918L292.1850000000001,414.415L293.6160000000001,415.84700000000004L296.4740000000001,414.06100000000004L299.0890000000001,416.67900000000003H300.1620000000001L301.11500000000007,415.25100000000003L303.3760000000001,412.98800000000006L304.44900000000007,413.8210000000001L307.6620000000001,413.22600000000006L310.7610000000001,410.72400000000005L313.3800000000001,406.91300000000007L317.0680000000001,406.08200000000005L319.0910000000001,408.10300000000007L320.52100000000013,404.05500000000006L323.37800000000016,403.82000000000005L324.4470000000002,402.98600000000005L325.40400000000017,399.2950000000001L324.21200000000016,397.27200000000005L314.4470000000002,395.487L312.77900000000017,392.63H309.9250000000002H307.30600000000015L305.40000000000015,389.533L305.64000000000016,387.868L306.82800000000015,380.961L303.0190000000001,377.272L305.8780000000001,365.245L303.9700000000001,363.57800000000003L297.66100000000006,365.48400000000004L296.2300000000001,362.98300000000006V360.12700000000007L294.8020000000001,358.69700000000006L297.8960000000001,354.41100000000006L301.34900000000005,355.48100000000005L302.77900000000005,354.0520000000001L309.09200000000004,355.0030000000001L311.94800000000004,354.0520000000001L313.622,349.296Z",
            /**23 陕西  */"M363.393,259.519L361.965,256.065L364.46299999999997,247.255L360.77399999999994,230.352C360.77399999999994,230.352,364.03599999999994,224.57500000000002,363.393,226.066C362.74699999999996,227.556,364.46299999999997,222.137,364.46299999999997,222.137L361.12899999999996,215.232L364.22499999999997,210.348L364.81899999999996,205.823L366.489,202.371L366.251,198.32500000000002L364.81899999999996,197.251L362.55899999999997,199.75300000000001L356.48699999999997,200.109L353.39099999999996,204.63500000000002L353.62699999999995,207.25500000000002L353.03399999999993,208.92000000000002L350.5319999999999,209.75400000000002L341.1259999999999,223.20800000000003L339.9359999999999,222.372L337.3189999999999,221.77800000000002L331.9599999999999,222.13700000000003L330.17099999999994,224.63600000000002L329.93799999999993,230.11400000000003L330.77199999999993,231.78100000000003L339.93799999999993,236.41800000000003L344.8209999999999,239.51700000000002L345.6529999999999,242.372L343.0339999999999,246.06300000000002L344.46499999999986,250.34900000000002L343.6299999999999,252.37L336.8459999999999,252.97L335.4129999999999,253.805L335.8909999999999,254.993V256.897L330.5359999999999,257.493L327.6799999999999,256.065H323.9889999999999L323.3929999999999,256.897L323.9889999999999,258.923L322.19999999999993,260.945L321.60799999999995,263.206L325.05899999999997,266.067L322.55899999999997,271.184L323.63,273.80300000000005L323.393,274.994H319.34099999999995L316.48699999999997,276.423L318.74899999999997,279.521L317.31899999999996,283.569L319.70199999999994,284.047L319.93999999999994,286.66400000000004L321.96099999999996,286.90100000000007L329.347,285.47400000000005L330.777,286.06700000000006L331.131,288.09200000000004L334.22999999999996,288.927L340.777,292.14300000000003L344.467,290.709L352.56399999999996,293.56600000000003L354.22999999999996,295.826L358.28099999999995,294.997L357.68499999999995,290.709L356.85099999999994,289.51800000000003L357.68499999999995,286.067L361.97099999999995,284.046L363.03899999999993,282.378L360.77899999999994,281.541L358.27899999999994,280.948L355.6599999999999,278.328L356.84899999999993,277.26H365.41999999999996H367.328L368.517,278.09L371.133,276.068V272.614L363.39599999999996,260.94599999999997L363.393,259.519L363.393,259.519Z",
            /**24 甘肃  */"M196.462,200.108L195.03199999999998,183.558L195.868,180.105L200.74699999999999,177.843C200.74699999999999,177.843,205.956,172.813,207.64999999999998,172.12599999999998C209.34599999999998,171.43999999999997,218.24999999999997,167.84099999999998,218.24999999999997,167.84099999999998L222.53499999999997,165.81599999999997V161.76899999999998L224.43999999999997,159.50699999999998L226.22799999999998,159.74399999999997L233.37199999999999,160.93599999999998L233.01399999999998,164.03099999999998L234.444,168.91099999999997L233.60999999999999,176.88899999999998L239.682,185.81799999999998L242.779,187.844L247.662,184.03199999999998H257.899L260.522,184.98499999999999L261.95099999999996,187.249L260.758,189.748L255.04399999999998,194.393L255.641,196.654L262.19,201.536H264.808L265.642,202.606L265.046,204.631L269.096,207.848L278.5,209.27700000000002L283.025,208.08700000000002L288.743,202.36800000000002L295.646,202.96600000000004L298.50100000000003,207.25300000000004L296.83700000000005,211.18200000000004L297.31200000000007,213.56400000000005L293.6240000000001,215.82700000000006L291.9560000000001,217.85100000000006L292.5520000000001,222.61400000000006L299.0970000000001,227.26000000000005L301.9720000000001,226.60700000000006L309.6970000000001,236.06500000000005L311.3650000000001,243.21000000000006L310.5310000000001,246.66100000000006L315.88800000000015,249.52000000000007V251.78000000000006L320.77100000000013,252.97200000000007H322.1970000000001V248.92200000000005L325.8900000000001,248.32700000000006L326.8410000000001,243.56400000000005L324.2220000000001,241.53800000000004L322.1970000000001,239.51700000000005L323.0310000000001,230.35100000000006L325.05400000000014,229.28000000000006L328.5070000000001,230.71000000000006L329.93900000000014,230.11200000000005L330.77300000000014,231.77900000000005L339.93900000000014,236.41800000000006L344.8220000000001,239.51800000000006L345.6540000000001,242.37400000000005L343.0350000000001,246.06500000000005L344.46600000000007,250.35000000000005L343.63200000000006,252.37100000000004L336.84700000000004,252.97100000000003L335.41400000000004,253.80400000000003L335.89200000000005,254.99500000000003V256.898L330.53700000000003,257.492L327.68100000000004,256.064H323.99000000000007L323.39400000000006,256.898L323.99000000000007,258.922L322.2010000000001,260.94500000000005L321.6090000000001,263.20700000000005L325.0580000000001,266.0640000000001L322.5600000000001,271.1830000000001L323.6320000000001,273.8050000000001L323.3940000000001,274.9930000000001H319.34300000000013L316.48900000000015,276.4280000000001L318.74900000000014,279.5190000000001L317.32100000000014,283.5700000000001L313.03400000000016,284.6400000000001L313.3910000000002,286.6630000000001L312.20200000000017,288.0910000000001L304.8190000000002,287.4950000000001L301.9650000000002,285.4740000000001L301.3640000000002,280.9490000000001L299.7000000000002,279.28000000000014L297.0800000000002,280.9490000000001L292.5570000000002,276.4280000000001L289.1020000000002,274.0430000000001L288.7480000000002,270.70800000000014L287.6740000000002,268.0890000000001H285.8870000000002L278.7430000000002,271.1850000000001L279.0990000000002,274.6390000000001H276.4810000000002L272.19400000000024,270.3510000000001L267.66900000000027,269.7580000000001L265.88300000000027,267.25900000000007L267.31400000000025,264.39900000000006L269.93100000000027,266.89900000000006L273.02800000000025,267.85300000000007L275.64800000000025,265.8280000000001V260.9470000000001L278.5050000000003,258.3270000000001L280.77000000000027,256.06400000000014L279.6970000000003,253.20800000000014L285.4130000000003,248.68600000000015L286.2450000000003,241.53900000000016L283.62600000000026,237.85100000000017L282.1970000000003,231.78000000000017L275.0530000000003,222.37500000000017L271.3610000000003,223.80600000000018L266.2430000000003,219.28200000000018L259.3360000000003,214.99500000000018L256.4800000000003,208.09000000000017L251.1210000000003,210.11300000000017L241.1220000000003,203.80400000000017L236.2390000000003,206.4200000000002L228.73800000000028,205.2320000000002L223.02400000000029,208.6840000000002L219.33300000000028,208.9210000000002L213.61800000000028,205.4700000000002L209.68800000000027,203.2050000000002L196.462,200.108Z",
            /**25 青海  */"M153.954,234.989L158.477,236.656L166.219,234.03900000000002L165.02599999999998,232.61H163.005L162.171,230.35100000000003L162.765,228.32700000000003L166.457,226.65900000000002L169.07399999999998,222.37300000000002L161.09699999999998,215.82500000000002L160.74099999999999,208.919C160.74099999999999,208.919,162.821,206.37400000000002,164.42999999999998,206.06300000000002C166.039,205.75000000000003,190.74699999999999,200.94400000000002,190.74699999999999,200.94400000000002L192.52999999999997,199.51600000000002L196.46099999999998,200.11L209.676,203.205L213.606,205.47L219.32,208.921L223.012,208.684L228.726,205.232L236.227,206.42L241.109,203.80399999999997L251.108,210.11299999999997L256.468,208.08999999999997L259.324,214.99299999999997L266.231,219.27899999999997L271.35,223.80599999999995L275.041,222.37499999999994L282.187,231.77999999999994L283.613,237.85099999999994L286.232,241.53899999999993L285.40000000000003,248.68499999999992L279.68500000000006,253.20899999999992L280.75800000000004,256.06499999999994L278.49300000000005,258.3279999999999L275.63700000000006,260.9479999999999V265.82699999999994L273.0160000000001,267.8539999999999L269.9190000000001,266.8999999999999L267.3020000000001,264.3999999999999L265.8710000000001,267.2589999999999L267.6580000000001,269.7579999999999L272.1820000000001,270.3519999999999L276.46900000000005,274.63999999999993H279.08700000000005L281.11100000000005,276.9049999999999L279.32400000000007,280.9509999999999V281.1899999999999L275.6360000000001,280.7109999999999L273.0150000000001,282.6159999999999L271.3490000000001,279.7599999999999L266.8250000000001,281.5449999999999L265.6350000000001,283.8089999999999V287.25999999999993L261.1110000000001,288.09599999999995L255.3960000000001,282.37999999999994L253.6090000000001,279.52399999999994L249.0850000000001,280.95199999999994L241.3470000000001,278.68999999999994L229.6770000000001,280.35599999999994L228.7250000000001,281.54499999999996L227.6540000000001,285.23499999999996L225.3910000000001,286.66499999999996L225.6290000000001,290.35699999999997L218.7230000000001,299.28799999999995L207.2930000000001,296.905L206.4600000000001,292.61999999999995L199.3140000000001,286.90199999999993L183.5970000000001,284.40399999999994L176.8110000000001,283.21399999999994L174.19000000000008,282.97599999999994L168.23700000000008,278.09299999999996L155.85300000000007,275.23599999999993L147.28300000000007,258.68499999999995L147.04500000000007,254.04299999999995L150.49600000000007,252.37099999999995V247.25399999999996L152.99800000000008,240.94099999999997L150.14000000000007,238.08499999999998L153.954,234.989Z",
            /**26 内蒙  */"M301.969,226.604L305.407,225.82500000000002L308.26599999999996,224.63700000000003L313.02799999999996,220.70500000000004L313.98099999999994,214.39500000000004L316.83599999999996,205.22700000000003L322.78999999999996,201.17900000000003L323.62499999999994,202.13000000000002L325.41099999999994,208.32000000000002L322.55299999999994,212.36900000000003L321.95899999999995,216.06000000000003L331.12699999999995,219.51300000000003L331.95899999999995,222.13400000000004L337.31699999999995,221.77500000000003L339.93399999999997,222.37100000000004L341.12499999999994,223.20500000000004L350.5299999999999,209.75100000000003L353.0319999999999,208.91600000000003L353.62499999999994,207.25200000000004L353.38899999999995,204.62900000000005L356.48499999999996,200.10600000000005L362.55699999999996,199.74800000000005L364.81899999999996,197.24800000000005L366.24999999999994,198.32200000000006L369.70199999999994,195.46200000000005H371.60599999999994L377.91799999999995,186.41600000000005L381.1329999999999,186.65100000000007L385.06299999999993,183.79600000000008L386.2539999999999,184.98500000000007L393.6349999999999,181.17600000000007L389.94599999999986,174.98300000000006L391.1349999999999,168.67200000000005L394.2309999999999,162.12300000000005L396.8499999999999,160.93500000000006L398.5159999999999,161.76700000000005V166.41100000000006L400.5409999999999,167.84100000000007L405.0669999999999,164.38800000000006L407.0879999999999,162.36200000000005L409.1099999999999,163.19700000000006L411.3749999999999,161.17200000000005L416.25599999999986,160.93800000000005L417.08999999999986,159.27100000000004L415.8989999999999,156.64900000000006L419.35199999999986,153.19700000000006L423.40099999999984,151.17300000000006L429.71099999999984,158.08100000000005L429.3559999999998,160.69900000000004L432.56899999999985,165.46200000000005L439.95399999999984,166.05700000000004L441.61999999999983,162.60400000000004L439.7169999999998,152.60200000000003L441.3829999999998,150.93500000000003L444.8359999999998,153.19700000000003L447.9319999999998,157.84100000000004L452.81299999999976,150.34100000000004L455.07699999999977,149.74500000000003L458.7659999999998,146.05300000000003H460.55299999999977L463.64699999999976,142.95800000000003H465.43399999999974L467.09999999999974,140.10200000000003H471.6269999999997L475.67399999999975,136.05100000000004L477.69499999999977,134.03000000000006V131.76600000000005L474.48199999999974,130.09900000000005V125.81300000000005L468.52899999999977,118.31100000000005L462.8119999999998,123.78900000000004L461.1459999999998,122.59900000000005L460.78899999999976,119.50300000000004L458.52499999999975,116.05000000000004L457.93099999999976,112.11900000000004V108.07300000000004L454.00299999999976,105.21500000000003L453.40199999999976,103.54800000000003L454.4759999999998,101.16600000000003L461.9779999999998,103.18800000000003L462.2159999999998,99.73600000000003L464.83699999999976,96.63700000000003L463.0479999999998,94.97100000000003L463.4059999999998,91.75700000000003L467.0949999999998,90.09000000000003L467.9289999999998,88.90000000000003L467.3309999999998,87.83000000000004L463.40399999999977,88.90000000000003L456.2589999999998,84.01800000000003L455.90199999999976,82.58800000000002L459.35499999999973,78.06400000000002L466.50099999999975,67.46700000000003L467.09499999999974,66.39500000000002H468.2879999999997L470.5479999999997,69.25300000000003L471.1439999999997,69.73200000000003L471.3819999999997,56.39600000000003L473.6419999999997,55.20500000000003V50.084000000000024L473.0479999999997,41.751000000000026L475.9059999999997,30.083000000000027L467.33099999999973,23.771000000000026L460.78299999999973,29.249000000000024L457.33299999999974,29.725000000000023L455.66499999999974,31.511000000000024L449.9469999999997,30.679000000000023L447.09299999999973,27.464000000000024L445.42899999999975,22.342000000000024L445.66499999999974,20.321000000000023L441.13999999999976,17.463000000000022L438.5189999999998,21.752000000000024L433.6379999999998,18.656000000000024L432.8039999999998,17.821000000000023L435.6599999999998,10.321000000000023L433.4,7.223H431.376L426.25699999999995,10.911L421.9719999999999,17.222L423.63999999999993,18.293000000000003L426.85099999999994,18.652L429.35499999999996,25.200000000000003L427.92499999999995,27.818L425.42299999999994,31.507L420.77899999999994,48.653999999999996L422.56399999999996,51.51L421.13599999999997,54.007999999999996L410.537,61.74999999999999L404.82399999999996,60.678999999999995L401.609,59.48799999999999L401.13,61.154999999999994L396.488,79.732L394.224,82.11L395.41499999999996,85.445L398.26899999999995,87.827L403.03299999999996,85.204L410.77299999999997,85.80199999999999L413.03299999999996,82.10999999999999L417.085,81.15899999999999L424.822,84.01499999999999L434.23,93.77999999999999V95.80299999999998L432.206,97.23199999999999L421.37,97.83099999999999L417.67900000000003,100.68499999999999L414.822,100.32999999999998L412.8,103.54399999999998L407.67900000000003,104.61399999999998L404.22200000000004,109.73399999999998L403.63000000000005,113.54399999999998L396.25100000000003,118.30699999999999L391.605,118.90499999999999L386.486,125.80899999999998L381.603,128.66799999999998L372.195,126.64299999999997L369.103,125.21199999999997L365.411,128.90599999999998L363.626,135.45399999999998L368.745,142.95499999999998L365.41,146.40599999999998L360.76700000000005,149.265C360.76700000000005,149.265,352.345,159.903,353.9800000000001,157.83599999999998C355.6170000000001,155.772,347.3610000000001,161.196,345.05000000000007,161.766C342.74000000000007,162.334,330.5250000000001,163.195,330.5250000000001,163.195L328.2610000000001,162.958L311.3550000000001,170.102L303.61300000000006,174.983L301.35100000000006,173.793L300.5210000000001,171.531L290.16100000000006,170.934L278.25200000000007,167.246L275.04100000000005,163.556L257.65600000000006,161.531L254.43900000000005,162.961L233.36700000000005,160.93900000000002L233.00900000000004,164.03400000000002L234.43900000000005,168.91700000000003L233.60500000000005,176.89300000000003L239.67800000000005,185.82200000000003L242.77400000000006,187.84800000000004L247.65700000000007,184.03600000000003H257.89400000000006L260.51700000000005,184.98900000000003L261.94300000000004,187.25100000000003L260.75300000000004,189.75100000000003L255.03900000000004,194.39700000000002L255.63600000000005,196.65800000000002L262.18500000000006,201.538H264.80300000000005L265.63700000000006,202.61L265.04100000000005,204.633L269.09100000000007,207.85000000000002L278.4940000000001,209.27900000000002L283.0210000000001,208.08900000000003L288.7370000000001,202.37000000000003L295.6400000000001,202.96800000000005L298.4970000000001,207.25700000000003L296.83300000000014,211.18300000000002L297.30600000000015,213.56500000000003L293.61800000000017,215.82800000000003L291.95000000000016,217.85200000000003L292.54600000000016,222.61200000000002L299.0910000000002,227.25900000000001L301.969,226.604Z",
            /**27 广西  */"M305.646,387.87L309.334,388.111L313.385,384.417L315.053,385.489L322.79,388.705L324.219,387.87L324.454,385.251L325.887,383.822L336.842,376.677L338.745,378.94300000000004L345.413,380.96400000000006L349.104,376.0810000000001L350.77,377.2730000000001H353.389V375.8420000000001L356.842,374.6500000000001V373.5810000000001L358.272,372.1530000000001L359.104,372.38900000000007L362.55699999999996,368.93800000000005L365.41299999999995,369.77000000000004L368.27,365.83900000000006L369.702,368.93800000000005L370.534,368.70000000000005L375.05899999999997,364.41200000000003L376.24699999999996,364.65200000000004L378.268,363.57900000000006L381.96099999999996,364.65200000000004V368.70000000000005L384.81699999999995,369.2950000000001L383.98499999999996,373.22400000000005L381.36199999999997,377.51400000000007L380.174,381.20200000000006H381.36199999999997L384.46299999999997,378.34800000000007L387.07899999999995,384.0610000000001L389.1039999999999,382.6310000000001H391.3639999999999L393.0299999999999,388.34800000000007L391.3639999999999,390.73100000000005L391.6039999999999,393.23100000000005L386.4849999999999,399.7780000000001L386.8399999999999,406.68300000000005L380.1719999999999,411.80300000000005L379.6959999999999,416.0880000000001L375.8869999999999,417.87500000000006L376.2409999999999,420.37500000000006L372.54699999999985,421.2060000000001L369.69399999999985,425.8520000000001L362.19199999999984,426.9230000000001L358.26199999999983,424.0670000000001L354.21299999999985,422.39800000000014L350.1639999999999,426.44800000000015L346.00599999999986,426.68900000000014L341.94799999999987,426.9230000000001C341.94799999999987,426.9230000000001,330.9519999999999,420.7840000000001,332.77999999999986,421.8040000000001C334.60799999999983,422.8250000000001,331.11399999999986,417.2780000000001,331.11399999999986,417.2780000000001L333.3749999999999,412.63200000000006L330.75799999999987,410.7300000000001H327.3029999999999L326.4709999999999,409.7780000000001L322.7799999999999,410.7300000000001L319.0879999999999,408.11000000000007L320.5199999999999,404.06200000000007L323.37499999999994,403.82700000000006L324.44399999999996,402.99300000000005L325.40099999999995,399.30300000000005L324.20899999999995,397.27900000000005L314.44399999999996,395.494L312.77599999999995,392.63800000000003H309.92199999999997H307.30299999999994L305.39699999999993,389.53900000000004L305.646,387.87Z",
            /**28 西藏  */"M152.525,339.529L159.312,340.363L161.577,343.579L162.766,344.056L173.005,342.152L173.599,340.365L175.62199999999999,339.295L180.50599999999997,335.245L184.79099999999997,334.651L188.72099999999998,332.15000000000003L196.46099999999998,327.86400000000003L197.29299999999998,329.29200000000003L203.009,331.196L211.343,326.911L213.96099999999998,328.698L211.582,332.15L212.534,332.983H215.86599999999999L216.225,334.41L213.368,339.531L214.201,340.365H215.867L224.203,342.63L227.894,339.531L233.372,343.82L235.03900000000002,341.794L236.46900000000002,343.22499999999997H238.25300000000001L239.08700000000002,341.794L238.73100000000002,335.245L240.16000000000003,334.41L243.61100000000002,330.12600000000003L243.01700000000002,313.57700000000006L239.91800000000003,305.24000000000007L242.18300000000002,303.57500000000005L235.63500000000002,291.54800000000006L227.656,285.2370000000001L225.39600000000002,286.6670000000001L225.63400000000001,290.3590000000001L218.72600000000003,299.2900000000001L207.29800000000003,296.90600000000006L206.46500000000003,292.62000000000006L199.31900000000005,286.90400000000005L183.60200000000003,284.40600000000006L176.81500000000003,283.2180000000001L174.19600000000003,282.9770000000001L168.24400000000003,278.0940000000001L155.85900000000004,275.2370000000001L147.28900000000004,258.6860000000001L147.05100000000004,254.0440000000001L150.50200000000004,252.3720000000001V247.2550000000001L153.00400000000005,240.9440000000001L150.14600000000004,238.0860000000001L153.95700000000005,234.9910000000001L151.57400000000004,233.5660000000001H145.85800000000003L135.62000000000003,228.92200000000008H129.07100000000003L123.95300000000003,230.3520000000001H118.23800000000003L109.30700000000003,235.23100000000008L102.16300000000003,234.39700000000008L95.01700000000002,236.89700000000008L89.06300000000003,234.99100000000007L85.37500000000003,231.77900000000008L75.84900000000003,230.3520000000001L69.65700000000004,234.6320000000001L66.20700000000004,233.20700000000008L63.348000000000035,230.94400000000007L56.44000000000003,229.27700000000007L55.375000000000036,228.08800000000008L52.518000000000036,227.85100000000008L42.73600000000003,233.79600000000008L32.324000000000034,232.49900000000008L34.75200000000003,236.89700000000008L37.43200000000003,238.89200000000008L36.61100000000003,242.7340000000001L36.38000000000003,246.4920000000001L36.63600000000003,249.1640000000001L36.63600000000003,249.1640000000001L36.44300000000003,252.3720000000001L39.894000000000034,255.8260000000001L40.13300000000003,260.7100000000001L39.06100000000003,262.6170000000001L33.94200000000003,263.2080000000001L31.32100000000003,260.3540000000001L28.70200000000003,260.7090000000001L28.22600000000003,262.9740000000001L29.654000000000032,266.6620000000001L30.13300000000003,269.2820000000001V272.6150000000001L29.300000000000033,274.9960000000001L29.654000000000032,276.9050000000001L32.99000000000003,277.2610000000001L34.77500000000003,280.3550000000001L42.514000000000024,286.4260000000001V288.3320000000001L48.230000000000025,294.6430000000001L50.132000000000026,296.9050000000001L51.922000000000025,297.5000000000001L55.373000000000026,294.0490000000001L58.46900000000002,296.9050000000001C58.46900000000002,296.9050000000001,73.86400000000002,310.5890000000001,71.56700000000002,308.09800000000007C69.27000000000002,305.6070000000001,73.94800000000002,313.81300000000005,73.94800000000002,313.81300000000005H76.80700000000002L78.47400000000002,312.148L79.90000000000002,313.576V318.69300000000004L87.64100000000002,322.98L89.30800000000002,322.623L90.49900000000002,326.90999999999997L97.04700000000003,330.71999999999997L97.28500000000003,333.22099999999995L98.47300000000003,334.0559999999999L104.19000000000003,333.8159999999999H107.28800000000003L111.93200000000003,337.2729999999999L122.17200000000003,336.91399999999993L127.64800000000002,336.67499999999995L129.07600000000002,338.93999999999994L127.88800000000002,343.8229999999999L129.31500000000003,345.4869999999999L135.03000000000003,340.7259999999999L142.17600000000002,335.4869999999999L147.29600000000002,336.4369999999999L152.525,339.529Z",
            /**29 宁夏  */"M329.934,230.111L330.17400000000004,224.635L331.95900000000006,222.136L331.12700000000007,219.516L321.95900000000006,216.06199999999998L322.55300000000005,212.37099999999998L325.41100000000006,208.32199999999997L323.62500000000006,202.13199999999998L322.7900000000001,201.17999999999998L316.83600000000007,205.22899999999998L313.98100000000005,214.397L313.0280000000001,220.707L308.2660000000001,224.637L305.4070000000001,225.826L301.9690000000001,226.605C301.9690000000001,226.605,311.15300000000013,237.84099999999998,309.6980000000001,236.063C308.2430000000001,234.283,311.3620000000001,243.20899999999997,311.3620000000001,243.20899999999997L310.5280000000001,246.658L315.8850000000001,249.517V251.779L320.7660000000001,252.969H322.1960000000001V248.921L325.88700000000006,248.32399999999998L326.8380000000001,243.56099999999998L324.21900000000005,241.53499999999997L322.196,239.51399999999998L323.028,230.35099999999997L325.05100000000004,229.27799999999996L328.504,230.70799999999997L329.934,230.111Z",
            /**30 新疆  */"M153.889,69.508L156.216,69.494L154.788,74.019L156.81300000000002,76.399L157.049,78.065L161.574,82.589L162.76500000000001,86.042L168.71800000000002,86.399L171.33800000000002,88.664H172.76700000000002L176.22000000000003,96.043L179.67100000000002,104.974L177.88700000000003,110.331L178.24500000000003,112.35600000000001L175.03000000000003,117.83300000000001L175.86300000000003,122.11900000000001L187.05500000000004,126.88200000000002L199.08000000000004,128.67000000000002L211.58300000000003,137.241L215.63200000000003,138.67000000000002L215.86900000000003,140.931L218.48800000000003,146.40900000000002L221.10700000000003,153.555L224.44000000000003,159.508L222.53700000000003,161.77100000000002V165.818L218.25100000000003,167.84400000000002L207.65500000000003,172.12800000000001L200.74800000000002,177.847L195.86700000000002,180.107L195.03300000000002,183.56L196.46300000000002,200.11L192.532,199.514L190.74900000000002,200.94500000000002L164.43400000000003,206.06400000000002L160.74300000000002,208.92000000000002L161.10100000000003,215.82600000000002L169.07900000000004,222.37400000000002L166.45900000000003,226.66000000000003L162.76900000000003,228.32800000000003L162.17200000000003,230.35200000000003L163.00700000000003,232.61100000000002H165.02800000000002L166.22000000000003,234.04000000000002L158.48200000000003,236.657L153.95700000000002,234.99L151.57500000000002,233.566H145.86L135.62,228.924H129.074L123.95300000000002,230.352H118.23900000000002L109.30800000000002,235.231L102.16500000000002,234.397L95.02000000000002,236.897L89.06400000000002,234.98999999999998L85.37500000000003,231.77899999999997L75.85000000000002,230.35199999999998L69.65900000000002,234.63199999999998L66.20700000000002,233.20699999999997L63.349000000000025,230.94399999999996L56.44200000000002,229.27699999999996L55.37200000000002,228.08799999999997L52.51500000000002,227.85099999999997L42.73300000000002,233.79599999999996L32.69600000000002,232.54599999999996L31.87400000000002,232.18699999999995L32.98700000000002,223.56399999999996L28.463000000000022,222.37299999999996L19.057000000000023,215.47099999999998L16.437000000000022,215.22999999999996L14.414000000000023,210.70499999999996L15.841000000000022,206.06199999999995L15.364000000000022,203.80199999999996L11.913000000000022,201.53599999999997L10.721000000000021,199.27599999999998L3.5780000000000216,195.22699999999998V194.03799999999998L7.030000000000022,192.60699999999997L9.053000000000022,193.79699999999997L11.078000000000022,191.77199999999996L10.480000000000022,184.98699999999997L11.078000000000022,179.27099999999996L6.432000000000023,174.62899999999996L3.3370000000000224,175.46199999999996L2.1480000000000223,172.12599999999995L3.933000000000022,168.67399999999995L2.981000000000022,165.45999999999995L6.0190000000000214,162.71099999999996L7.267000000000022,161.52899999999997V158.91099999999997L11.552000000000021,156.88699999999997L15.83800000000002,156.05399999999997L19.649000000000022,154.62499999999997L22.748000000000022,155.45699999999997L25.008000000000024,154.62499999999997L25.841000000000022,155.21999999999997L26.197000000000024,158.07899999999998L28.219000000000023,158.91099999999997L32.98400000000002,158.67299999999997C32.98400000000002,158.67299999999997,36.550000000000026,153.94399999999996,38.462000000000025,152.59999999999997C40.373000000000026,151.25399999999996,49.65200000000002,154.98099999999997,49.65200000000002,154.98099999999997L55.36900000000002,150.93299999999996L71.92100000000002,147.24399999999997L72.99000000000002,144.97999999999996L74.42000000000003,138.66999999999996L79.06300000000003,134.97999999999996H80.49600000000004V133.07399999999996L80.73200000000004,117.23799999999996L81.56500000000004,114.02599999999995L77.04400000000004,112.35799999999995L76.80400000000004,111.16699999999994L81.56600000000005,109.73899999999995L93.95000000000005,108.66599999999995L95.85500000000005,111.16699999999996L100.14200000000005,112.11899999999996L101.33400000000005,112.35799999999996L102.99900000000005,110.09599999999996L100.73400000000005,107.83299999999996L109.90300000000005,89.25899999999996L111.33400000000005,88.30599999999995L119.66900000000004,92.35299999999995H123.35800000000003L125.02500000000003,94.61699999999995L133.00400000000005,92.11499999999995L135.02700000000004,78.90299999999995L138.47900000000004,76.63799999999995L142.52700000000004,76.39999999999995L145.38600000000005,72.94799999999995L146.45700000000005,69.49399999999996L148.72000000000006,68.30299999999995L153.889,69.508Z",
            /**31 澳门  */"M412.032,413.183L411.072,414.935C411.072,414.935,411.961,415.818,415.052,416.021S421.047,415.528,421.047,415.528L410.032,420.183Z",
            /**32 香港  */"M417.745,409.005L421.139,409.778L424.592,407.22L426.258,411.802C426.258,411.802,420.73699999999997,414.475,422.567,413.58700000000005C424.395,412.70300000000003,417.926,413.232,417.926,413.232L417.092,409.778L417.745,409.005Z",
            /**33 台湾  */"M505.438,371.203L502.221,390.37199999999996L500.557,396.44199999999995V401.56499999999994L499.127,402.99199999999996L495.676,397.87299999999993L491.983,395.01499999999993L488.76800000000003,386.4439999999999C488.76800000000003,386.4439999999999,488.317,380.8239999999999,489.12500000000006,378.7039999999999C489.9340000000001,376.5859999999999,494.48100000000005,364.6539999999999,494.48100000000005,364.6539999999999L500.79400000000004,359.29699999999985L504.845,361.20099999999985L505.438,371.203Z"
    };

    public enum Area {
        BeiJing("北京市", 0), TianJin("天津市", 1), ShangHai("上海市", 2), ChongQing("重庆市", 3),
        HeBei("河北省", 4), ShanXi("山西省", 5), LiaoNing("辽宁省", 6), HeiLongJiang("黑龙江省", 7),
        JiLin("吉林省", 8), JiangSu("江苏省", 9), ZheJiang("浙江省", 10), AnHui("安徽省", 11), FuJian("福建省", 12),
        JiangXi("江西省", 13), ShanDong("山东省", 14), HeNan("河南省", 15), HuBei("湖北省", 16), HuNan("湖南省", 17),
        GuangDong("广东省", 18), HaiNan("海南省", 19), SiChuan("四川省", 20), GuiZhou("贵州省", 21), YunNan("云南省", 22),
        ShaanXi("陕西省", 23), GanSu("甘肃省", 24), QingHai("青海省", 25), NeiMengGu("内蒙古自治区", 26), GuangXi("广西自治区", 27),
        XiZang("西藏自治区", 28), NingXia("宁夏自治区", 29), XinJiang("新疆自治区", 30), AoMen("澳门", 31), XiangGang("香港", 32),
        TaiWan("台湾", 33);
        public int value;
        public String name;

        Area(String pName, int pValue) {
            this.name = pName;
            this.value = pValue;
        }

        public static Area valueOf(int value) {    //    手写的从int到enum的转换函数
            switch (value) {
                case 0:
                    return BeiJing;
                case 1:
                    return TianJin;
                case 2:
                    return ShangHai;
                case 3:
                    return ChongQing;
                case 4:
                    return HeBei;
                case 5:
                    return ShanXi;
                case 6:
                    return LiaoNing;
                case 7:
                    return HeiLongJiang;
                case 8:
                    return JiLin;
                case 9:
                    return JiangSu;
                case 10:
                    return ZheJiang;
                case 11:
                    return AnHui;
                case 12:
                    return FuJian;
                case 13:
                    return JiangXi;
                case 14:
                    return ShanDong;
                case 15:
                    return HeNan;
                case 16:
                    return HuBei;
                case 17:
                    return HuNan;
                case 18:
                    return GuangDong;
                case 19:
                    return HaiNan;
                case 20:
                    return SiChuan;
                case 21:
                    return GuiZhou;
                case 22:
                    return YunNan;
                case 23:
                    return ShaanXi;
                case 24:
                    return GanSu;
                case 25:
                    return QingHai;
                case 26:
                    return NeiMengGu;
                case 27:
                    return GuangXi;
                case 28:
                    return XiZang;
                case 29:
                    return NingXia;
                case 30:
                    return XinJiang;
                case 31:
                    return AoMen;
                case 32:
                    return XiangGang;
                case 33:
                    return TaiWan;
                default:
                    return null;
            }
        }

    }

  

    public void setPaintColor(Area pArea, int color, boolean isFull) {
        Paint p = xPaints[pArea.value];
        p.setColor(color);
        if (isFull) {
            p.setStyle(Paint.Style.FILL);
        }
        invalidate();
    }

    public void setPaintColor(int index, int color, boolean isFull) {
        Paint p = xPaints[index];
        p.setColor(color);
        if (isFull) {
            p.setStyle(Paint.Style.FILL);
        }
        invalidate();
    }

    public void setSelectdColor(int pSelectdColor) {
        this.selectdColor = pSelectdColor;
        invalidate();
    }

    public void setMapColor(int pMapColor) {
        mapColor = pMapColor;
        invalidate();
    }

    public void selectAProvince(Area pArea) {
        if (selected == pArea.value) {
            return;
        }
        selected = pArea.value;
        if (this.onProvinceSelectedListener != null)
            this.onProvinceSelectedListener.onProvinceSelected(pArea, false);
        invalidate();
    }

    public void selectProvince(String provinceName) {
        try {
            Area area = Area.GuangDong;
            for (int i = 0; i < Area.values().length; i++) {
                if (Area.values()[i].name.equals(provinceName)) {
                    area = Area.values()[i];
                    break;
                }
            }

            if (selected == area.value) {
                return;
            }

            selected = area.value;
            if (this.onProvinceSelectedListener != null)
                this.onProvinceSelectedListener.onProvinceSelected(area, false);
            invalidate();
        } catch (Exception e) {
            e.printStackTrace();
        }

    }


 
    public ChinaMapView(Context context) {
        super(context);
        initPaths();
        computeBounds();
        initPaints();
    }

    public ChinaMapView(Context context, AttributeSet attrs) {
        super(context, attrs);
        initPaths();
        computeBounds();
        initPaints();
        gestureDetector = new GestureDetector(context, new mapGestureListener());
    }

    /**
     * 调整清晰度，竖直越大，地图越清晰，一般2.5倍即可，改成其他值之后，需要在drawOneArea方法中调整文字的大小和位置
     */
 

    private void initPaths() {
        try {
            SvgPathToAndroidPath lParser = new SvgPathToAndroidPath();
            lParser.setScale(svgPathScale);
            for (int i = 0; i < svgPaths.length; i++) {
                String svgPath = svgPaths[i];
                Path path = lParser.parser(svgPath);
                xPaths[i] = path;

            }
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    private void initPaints() {
        for (int i = 0; i < xPaints.length; i++) {
            Paint xPaint = new Paint(Paint.ANTI_ALIAS_FLAG);
            xPaint.setColor(DEFAULT_COLOR);
            xPaint.setStyle(Paint.Style.FILL);
            xPaints[i] = xPaint;
        }
        touchPaint = new Paint(Paint.ANTI_ALIAS_FLAG);
        touchPaint.setStyle(Paint.Style.FILL);
        touchPaint.setColor(DEFAULT_SELECTD_COLOR);

        xPaintsBorder = new Paint(Paint.ANTI_ALIAS_FLAG);
        xPaintsBorder.setStyle(Paint.Style.STROKE);
        xPaintsBorder.setColor(0xffB0D2F6);
        xPaintsBorder.setStrokeWidth(1.5f);
    }

    /**
     * 计算地图边界
     * 1.黑龙江是中国最东，最北的省份
     * 2.新疆是中国最西的省份
     * 3.海南是中国最南的省份
     * <p/>
     * 地图边界为
     * 0点                  1点
     * 0,0------------------heilongjiang.right,0
     * |                      |
     * |                      |
     * 0,hainan.bottom------heilongjiang.right,hainan.bottom
     * 3点                   2点
     * 地图宽度--->heilongjiang.right
     * 地图高度--->hainan.bottom
     */
    private void computeBounds() {

        RectF hljRF = new RectF();
        xPaths[Area.HeiLongJiang.value].computeBounds(hljRF, true);

        RectF hnRF = new RectF();
        xPaths[Area.HaiNan.value].computeBounds(hnRF, true);

        mPointFs[0] = new PointF(0, 0);
        mPointFs[1] = new PointF(hljRF.right, 0);
        mPointFs[2] = new PointF(hljRF.right, hnRF.bottom);
        mPointFs[3] = new PointF(0, hnRF.bottom);

        width = hljRF.right + 2 * padding;
        height = hnRF.bottom + 2 * padding;
        Log.e(TAG, "computeBounds: " + width + "  " + height);


    }

    private class mapGestureListener extends GestureDetector.SimpleOnGestureListener {


        @Override
        public boolean onSingleTapConfirmed(MotionEvent motionEvent) {
            //延迟点击，在确定不是单击事件后才执行这个方法，效果不是很好
//            if ( Math.abs(motionEvent.getX() - startPoint.x) < 5f && Math.abs(motionEvent.getY() - startPoint.y) < 5f) {
//                try {
//                    for (int i = 0; i < xPaths.length; i++) {
//                        RectF r = new RectF();
//                        xPaths[i].computeBounds(r, true);
//                        Region re = new Region();
//                        re.setPath(xPaths[i], new Region((int) r.left, (int) r.top, (int) r.right, (int) r.bottom));
//                        if (re.contains((int) (motionEvent.getX() / scale - translateX - padding), (int) (motionEvent.getY() / scale - translateY - padding))) {
//                            boolean doubleClick = i == selected;
//
//                            selected = i;
//                            if (onProvinceSelectedListener != null)
//                                onProvinceSelectedListener.onProvinceSelected(Area.valueOf(selected), doubleClick);
//
//
//                            invalidate();
//                            return true;
//                        }
//                    }
//                } catch (Exception e) {
//                    e.printStackTrace();
//                }
//            }
            return super.onSingleTapConfirmed(motionEvent);
        }

        @Override
        public boolean onDoubleTap(MotionEvent e) {
            if (onProvinceDoubleClickListener != null) {
                onProvinceDoubleClickListener.onProvinceDoubleClick();
                return true;
            }
            return super.onDoubleTap(e);
        }
    }


    @Override
    protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
        super.onMeasure(widthMeasureSpec, heightMeasureSpec);
        int speSize = MeasureSpec.getSize(widthMeasureSpec);
        minScale = defaultScale = scale = speSize / width;
        Log.i(TAG, "onMeasure: " + speSize + "   " + minScale + "  " + (int) (speSize * height / width));
        setMeasuredDimension(speSize, (int) (speSize * height / width));
    }

    @Override
    protected void onDraw(Canvas canvas) {
        super.onDraw(canvas);
        scale = scale > maxScale ? maxScale : scale < minScale ? minScale : scale;
        xMatrix.setScale(scale, scale);
        canvas.concat(xMatrix);
        canvas.translate(translateX + padding, translateY + padding);
        drawBaseMap(canvas);
        drawSelectedMap(canvas);
    }


    private void drawBaseMap(Canvas pCanvas) {
        Paint textPaint = new Paint();

        for (int i = 0; i < xPaths.length; i++) {
            textPaint.setTextSize(commonTextSixe);
            textPaint.setColor(textColor);

            if (mapColor != -1 && xPaints[i].getColor() == DEFAULT_COLOR) {
                xPaints[i].setColor(mapColor);
            }

            if (xPaints[i].getColor() != DEFAULT_COLOR) {
                textPaint.setColor(Color.WHITE);
            }

            pCanvas.drawPath(xPaths[i], xPaints[i]);
            pCanvas.drawPath(xPaths[i], xPaintsBorder);
            if (Area.XiangGang == Area.valueOf(i) || Area.AoMen == Area.valueOf(i)) {
                continue;
            }


            drawOneArea(pCanvas, textPaint, i);

        }
    }

    private void drawOneArea(Canvas pCanvas, Paint textPaint, int index) {
        RectF testRect = new RectF();
        xPaths[index].computeBounds(testRect, true);

        int paddingLeft = 0;
        int paddingTop = 0;

        if (Area.NeiMengGu == Area.valueOf(index)) {
            paddingTop += 180;
            paddingLeft -= 120;
        }

        if (Area.XinJiang == Area.valueOf(index)) {
            paddingLeft -= 100;
            paddingTop += 50;
        }

        if (Area.XiZang == Area.valueOf(index)) {
            paddingLeft -= 110;

        }

        if (Area.GanSu == Area.valueOf(index)) {
            paddingLeft += 50;
            paddingTop += 90;
        }
        if (Area.ShangHai == Area.valueOf(index)) {
            paddingLeft += 7;
        }

        if (Area.GuangDong == Area.valueOf(index)) {
            paddingTop -= 20;
        }

        if (Area.ShaanXi == Area.valueOf(index)) {
            paddingTop += 38;
        }
        if (Area.ShanXi == Area.valueOf(index)) {
            paddingLeft -= 20;
        }

        if (Area.HeiLongJiang == Area.valueOf(index)) {
            paddingLeft -= 25;
            paddingTop += 30;
        }

        if (Area.HeBei == Area.valueOf(index)) {
            paddingLeft -= 50;
            paddingTop += 50;
        }
        if (Area.BeiJing == Area.valueOf(index)) {
            paddingLeft += 0;
            paddingTop += 1;
            textPaint.setTextSize(14);
        }

        if (Area.TianJin == Area.valueOf(index)) {
            paddingLeft -= 3;
            paddingTop += 10;
            textPaint.setTextSize(14);
        }

        if (Area.NingXia == Area.valueOf(index)) {
            paddingLeft -= 15;
            paddingTop += 10;
            textPaint.setTextSize(21);
        }

        if (Area.ChongQing == Area.valueOf(index)) {
            paddingLeft -= 25;
            paddingTop += 25;
            textPaint.setTextSize(22);
        }

        if (Area.JiangXi == Area.valueOf(index)) {
            paddingLeft -= 25;
        }

        if (Area.AnHui == Area.valueOf(index)) {
            paddingLeft -= 25;
        }
        if (Area.YunNan == Area.valueOf(index)) {
            paddingLeft -= 25;
        }

        pCanvas.drawText(provinceNames[index], testRect.left + testRect.width() / 2 - padding + paddingLeft, testRect.top + testRect.height() / 2 + paddingTop, textPaint);
    }

    private void drawSelectedMap(Canvas pCanvas) {
        if (selected >= 0) {
            if (selectdColor != -1) {
                touchPaint.setColor(selectdColor);
            }
            pCanvas.drawPath(xPaths[selected], touchPaint);
            Paint textPaint = new Paint();
            textPaint.setStyle(Paint.Style.FILL);
            textPaint.setColor(0xffffffff);
            textPaint.setTextSize(commonTextSixe);
            drawOneArea(pCanvas, textPaint, selected);
        }
    }

    @Override
    protected void onSizeChanged(int w, int h, int oldw, int oldh) {
        super.onSizeChanged(w, h, oldw, oldh);
        viewWidth = w;
        viewHeight = h;
    }


    @Override
    public boolean onTouchEvent(MotionEvent pMotionEvent) {
        gestureDetector.onTouchEvent(pMotionEvent);

        switch (pMotionEvent.getAction() & MotionEvent.ACTION_MASK) {
            case MotionEvent.ACTION_DOWN:
                mode = NONE;
                if (pMotionEvent.getPointerCount() == 1) {
                    startOnTouchTime = System.currentTimeMillis();
                    mode = NONE;
                    startPoint.set(pMotionEvent.getX(), pMotionEvent.getY());

                }
                break;
            case MotionEvent.ACTION_UP:
                mode = NONE;
                if (pMotionEvent.getPointerCount() == 1) {
                    long timeCount = System.currentTimeMillis() - startOnTouchTime;
                    if (timeCount < 4000 && Math.abs(pMotionEvent.getX() - startPoint.x) < 5f && Math.abs(pMotionEvent.getY() - startPoint.y) < 5f) {
                        try {
                            for (int i = 0; i < xPaths.length; i++) {
                                RectF r = new RectF();
                                xPaths[i].computeBounds(r, true);
                                Region re = new Region();
                                re.setPath(xPaths[i], new Region((int) r.left, (int) r.top, (int) r.right, (int) r.bottom));
                                if (re.contains((int) (pMotionEvent.getX() / scale - translateX - padding), (int) (pMotionEvent.getY() / scale - translateY - padding))) {
                                    boolean doubleClick = i == selected;
                                    selected = i;
                                    if (this.onProvinceSelectedListener != null)
                                        this.onProvinceSelectedListener.onProvinceSelected(Area.valueOf(selected), doubleClick);


                                    invalidate();
                                    return true;
                                }
                            }
                        } catch (Exception e) {
                            e.printStackTrace();
                        }
                    }
                }
                break;
            default:
                break;
        }
        return true;
    }

    /**
     * 模式 NONE：无. MOVE：移动. ZOOM:缩放
     */

    private static final int NONE = 0;
    private static final int MOVE = 1;
    private static final int ZOOM = 2;
    private int mode = NONE;    // 默认模式

    private double startDis = 0d;
    private PointF startPoint = new PointF();

    /**
     * 多触点
     *
     * @param event
     */
    private void onPointerDown(MotionEvent event) {
        if (event.getPointerCount() == 2) {
            mode = ZOOM;
            startDis = getDistance(event);
        }
    }


    private void onTouchMove(MotionEvent event) {
        if (mode == ZOOM && event.getPointerCount() == 2) {
            double endDis = getDistance(event);//结束距离
            if (endDis > 10f) {
                float tmpScale = (float) (endDis / startDis);//放大倍数
                if (tmpScale == 1) {
                    return;
                } else {
                    scale = tmpScale;
                    invalidate();
                }
            }
        } else {
            long timeCount = System.currentTimeMillis() - startOnTouchTime;
            if (timeCount > 300 && Math.abs(event.getX() - startPoint.x) > 10f && Math.abs(event.getY() - startPoint.y) > 10f) {
                translateX = event.getX() - startPoint.x;
                translateY = event.getY() - startPoint.y;
                invalidate();
            }
        }
    }

    /**
     * @param event
     * @return 获取两手指之间的距离
     */
    private double getDistance(MotionEvent event) {
        double x = event.getX(0) - event.getX(1);
        double y = event.getY(0) - event.getY(1);
        return Math.sqrt(x * x + y * y);
    }

    /**
     * 计算两点之间中心点的距离
     *
     * @param event
     * @return
     */
    private static PointF mid(MotionEvent event) {
        float midx = event.getX(1) + event.getX(0);
        float midy = event.getY(1) - event.getY(0);

        return new PointF(midx / 2, midy / 2);
    }

    public interface OnProvinceSelectedListener {
        void onProvinceSelected(Area pArea, boolean repeatClick);
    }

    public interface OnProvinceDoubleClickListener {
        void onProvinceDoubleClick();
    }

    private OnProvinceSelectedListener onProvinceSelectedListener;
    private OnProvinceDoubleClickListener onProvinceDoubleClickListener;

    public void setOnProvinceSelectedListener(OnProvinceSelectedListener pOnProvinceSelectedListener) {
        this.onProvinceSelectedListener = pOnProvinceSelectedListener;
    }

    public void setOnProvinceDoubleClickListener(OnProvinceDoubleClickListener onDoubleClickListener) {
        this.onProvinceDoubleClickListener = onDoubleClickListener;
    }
}
